package net.xdclass.service;

import net.xdclass.model.EventMessage;
import net.xdclass.req.ShortLinkAddReq;
import net.xdclass.req.ShortLinkDelReq;
import net.xdclass.req.ShortLinkPageReq;
import net.xdclass.req.ShortLinkUpdateReq;
import net.xdclass.util.JsonData;
import net.xdclass.vo.ShortLinkVO;

import java.util.Map;

public interface ShortLinkService {
    /**
     * 根据短链码查找短链信息
     * @param shortLinkCode
     * @return
     */
    ShortLinkVO parseShortLinkCode(String shortLinkCode);

    /**
     * 创建短链
     * @param req
     * @return
     */
    JsonData createShortLink(ShortLinkAddReq req);

    boolean handleAddShortLink(EventMessage eventMessage);

    /**
     * 根据组ID分页查找短链
     * @param req
     * @return
     */
    Map<String, Object> pageByGroupId(ShortLinkPageReq req);

    /**
     * 删除短链
     * @param req
     * @return
     */
    JsonData del(ShortLinkDelReq req);

    /**
     * 更新短链
     * @param req
     * @return
     */
    JsonData update(ShortLinkUpdateReq req);

    /**
     * 更新短链消费者，执行更新操作
     * @param eventMessage
     */
    boolean handleUpdateShortLink(EventMessage eventMessage);

    /**
     * 删除短链消费者，执行删除操作
     * @param eventMessage
     * @return
     */
    boolean handleDelShortLink(EventMessage eventMessage);
}
